package com.ruoyi.zhjd.exp.modules.asphaltrequires.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
// import com.qzsoft.jeemis.common.utils.Result;
// import com.qzsoft.zhjd.common.utils.ResultUtils;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.ValidatorUtils;
import com.ruoyi.zhjd.exp.modules.asphaltrequires.dto.AsphaltRequiresDto;
import com.ruoyi.zhjd.exp.modules.asphaltrequires.service.AsphaltRequiresService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @ClassName: AsphaltRequiresController
 * @Description: 沥青类技术要求
 * @author zhaij
 * @since 2021-04-25
 */
@RestController
@RequestMapping("/api/asphaltrequires/")
public class AsphaltRequiresController {
    @Autowired
    private AsphaltRequiresService requiresService;
    /**
     * @Title: page
     * @Description: 沥青类技术要求分页列表
     * @param params 查询条件
     * @return Result 沥青类技术要求分页列表
     */
    @GetMapping("page")
    public R<IPage<AsphaltRequiresDto>> page(@RequestParam Map<String, Object> params) {
        IPage<AsphaltRequiresDto> page = requiresService.page(params);
        return R.ok(page);
    }

    /**
     * @Title: page
     * @Description: 沥青类技术要求新增
     * @param dto 查询条件
     * @return Result 沥青类技术要求新增
     */
    @PostMapping("save")
    public R<String> saveRequires(@RequestBody AsphaltRequiresDto dto) {
        ValidatorUtils.validate(dto);
        if(CollectionUtils.isEmpty(dto.getRefs())){
            throw new ServiceException("请添加技术要求！");
        }
         requiresService.saveRequires(dto);
        return R.ok();
    }

    /**
     * @Title: page
     * @Description: 沥青类技术要求详情
     * @param id 查询条件
     * @return Result 沥青类技术要求详情
     */
    @GetMapping("detail/{id}")
    public R<AsphaltRequiresDto> detail(@PathVariable("id") String id) {
        return R.ok(requiresService.detail(id));
    }

    /**
     * @Title: page
     * @Description: 沥青类技术要求修改
     * @param dto 查询条件
     * @return Result 沥青类技术要求修改
     */
    @PostMapping("edit")
    public R<String> edit(@RequestBody AsphaltRequiresDto dto) {
        ValidatorUtils.validate(dto);
        if(CollectionUtils.isEmpty(dto.getRefs())){
            throw new ServiceException("请添加技术要求！");
        }
        requiresService.saveRequires(dto);
        return R.ok();
    }

    /**
     * @Title: page
     * @Description: 沥青类技术要求删除
     * @param id 查询条件
     * @return Result 沥青类技术要求删除
     */
    @PostMapping("remove/{id}")
    public R<String> remove(@PathVariable("id") String id) {
        requiresService.removeRequires(id);
        return R.ok("操作成功！");
    }

}
